import java.util.Arrays;
import java.util.Scanner;
public class test1 {
    /*给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ，
    请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 (i, j) 的数目。*/
    public static int seek(int[] nums,int target) {
        int n=nums.length;
        Arrays.sort(nums);
        int count=0;
        int left=0;
        int right=1;
        while(left!=right&&right<n&&left<n){
            if(nums[left]+nums[right]<target){
                count++;
                right++;
            }
            else{
                left++;
            }
        }
        return count;
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int target=sc.nextInt();
        int count=seek(nums,target);
        System.out.println(count);
    }
}
